<head>
<title>Moodle Docs: Developers Manual</title>
<link rel="stylesheet" href="docstyles.css" type="TEXT/CSS">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body bgcolor="#FFFFFF">
<h1><font face="Arial">Hướng dẫn phát triển</font></h1>  
<blockquote>
  <p><font face="Arial">Tài liệu này mô tả về một số thiết kế của Moodle và làm thế nào bạn có thể bạn có thể đóng góp.</font></p> 
  <p><font face="Arial">It's a bit thin at the moment - better documentation will come eventually!</font></p>
  <p><font face="Arial">Các phần trong tài liệu này:</font></p>
  <ol>
    <li><a href="#architecture"><font face="Arial">Cấu trúc của Moodle</font></a></li>
    <li><a href="#contribute"><font face="Arial">Làm thế nào bạn có thể đóng góp</font></a> 
      <ul>
        <li><a href="#activities"><font face="Arial">Các hoạt động học tập</font></a></li>
        <li><a href="#themes"><font face="Arial">Themes</font></a></li>
        <li><a href="#languages"><font face="Arial">Ngôn ngữ</font></a></li>
        <li><a href="#database"><font face="Arial">Giản đồ cơ sở dữ liệu</font></a></li>
        <li><a href="#courseformats"><font face="Arial">Các định dạng cua học</font></a></li>
        <li><a href="#doc"><font face="Arial">Tài liệu và các  bài báo</font></a></li>
        <li><a href="#bugs"><font face="Arial">Tham gia vào hoạt động kiểm tra lỗi</font></a></li>
      </ul>
    </li>
  </ol>
</blockquote>
<p>&nbsp;</p>
<h2><font face="Arial"><a name="architecture"></a>1. Cấu trúc của Moodle</font></h2>  
<blockquote>
  <p><font face="Arial">Từ một hệ thống phối cảnh của nhà quản trị, Moodle được thiết kế theo các tiêu chuẩn sau:</font></p>
  <ol>
    <li><font face="Arial"><strong>Moodle nên chạy trên các nền phổ dụng nhất </strong><br />
      <br />
      Nền ứng dụng web mà chạy trên trên hầu hết các nền là PHP được biên dịch cùng với
      MySQL, và đây là môi trường mà Moodle được phát triển trong 
      (trên Linux, Windows, và Mac OS X). Moodle cũng sử dụng thư viện ADOdb để chiết ra cơ sở dữ liệu, 
      điều đó có nghĩa là Moodle có thể sử dụng <a href="http://php.weblogs.com/ADOdb_manual#drivers"> nhiều hơn mười loại cơ 
      sở dữ liệu khác nhau</a> (không may mắn là, nó có thể 
      chưa <em><strong>cài đặt các bảng</strong></em> trong tất cả các cơ sở dữ liệu này - 
      chi tiết hơn ở lần sau). <br />
      <br />
      </font>
    </li>
    <li><font face="Arial"><strong>Moodle nên dễ cài đặt, học tập và thay đổi</strong><br />
      <br />
      Phiên bản đầu tiên của Moodle (1999)được xây dựng sử dụng <a target="_top" href="http://www.zope.org/">Zope</a> 
      - một ứng dụng web hướng đối tượng cao cấp. Không may mắn tôi nhận thấy rằng 
      mặc dù công nghệ that although the technology was pretty cool, it had a very steep learning 
      curve and was not very flexible in terms of system administration. Ngôn ngữ kịch bản PHP 
      , nói cách khác, rất dễ để viết get into (đặc biệt
      khi bạn làm bất kỳ chương trình nào sử dụng bất kỳ ngôn ngữ kịch bản nào khác). Đầu tiên 
      tôi tạo một mô tả để ngăn việc thiết kế lại một lớp, để duy trì nó đơn giản dễ hiểu đối  
      những người chưa có kinh nghiệm. Mã sử dụng lại được lưu trữ bởi các
      thư viện của các hàm được đặt tên rõ ràng  và cách bố trí phù hợp của các file kịch bản. 
      PHP cũng dễ cài đặt (các nhị phân thì có sẵn đối vơí mọi nền) 
      và được có sẵn rộng rãi để chỉ ra rằng tất cả các dịch vụ web hosting cung cấp nó như một chuẩn.
      <br />
      <br />
      </font>
    </li>
    <li><font face="Arial"><strong>Nó nên dễ nâng cấp từ một phiên bản để trở thành phiên bản tiếp theo</strong><br />
      <br />
      Moodle knows what version it is (ví dụ như các phiên bản của tất cả các môđun plug-in ) 
      và một kỹ xảo được xây dựng với mục đích để Moodle có thể tự nâng cấp một cách dễ dàng thành phiên bản mới 
      (ví dụ nó có thể đổi tên các bảng cơ sở dữ liệu hoặc thêm các trường mới 
      ). Nếu sử dụng CVS trong Unix đối với ví dụ này, một cách có thể làm một &quot;cập nhật cvs 
      &quot; và sau đó thăm trang chủ để hoàn thành việc nâng cấp.<br />
      <br />
      </font>
    </li>
    <li><font face="Arial"><strong>Nó nên môđun hóa để cho phép phát triển</strong><br />
      <br />
      Moodle có một số đặc trưng đó là các môđun, bao gồm themes, các hoạt động, các ngôn ngữ giao diện 
      , giản đồ cơ sở dữ liệu và định dạng các cua học. Điều này cho phép bất kỳ ai thêm các đặc trưng vào  
     phần mã chính hoặc ngay cả khi sắp xếp chúng một cách độc lập. 
      Chi tiết hơn xem ở các phần sau.<br />
      <br />
      </font>
    </li>
    <li><font face="Arial"><strong>Nó nên có khả năng được sử dụng chung với các hệ thống khác </strong><br />
      <br />
      Một trong những điều mà Moodle có thể là là duy trì tất cả các file đối với một cua học trong một thư 
      mục thông thường trên server. Điều này sẽ cho phép một nhà quản trị hệ thống cung cấp 
      các form liền mạch các truy cập mức file đối với mỗi giáo viên,ví dụ
      Appletalk, SMB, NFS, FTP, WebDAV vân vân. Các môđun chứng thực cho phép 
      Moodle sử dụng LDAP, IMAP, POP3, NNTP và các cơ sở dữ liệu khác như các nguồn tài nguyên 
      đối với thông tin người dùng. Mặt khác, chưa có công việc phải làm. Các tính năng được lên kế hoạch 
      cho Moodle trong các phiên bản trong tương lai bao gồm: nhập và xuất dữ liệu của Moodle sử dụng  
      các định dạng dựa trên XML (bao gồm IMS và SCORM); và tăng thêm sử dụng các kiểu dáng đối với các định dạng giao 
      diện (vì thế nó có thể được tích hợp bên ngoài vào trong các web site khác ).</font></li>
  </ol>
</blockquote>
<p>&nbsp;</p>
<h2><font face="Arial"><a name="contribute" id="contribute"></a>2. Làm thế nào bạn có thể đóng góp</font></h2>  
<blockquote>
  <p><font face="Arial">Như được đề cập ở trên đây, Moodle có một số đặc trưng mà nó là  that are modular. Ngay cả khi
  bạn không là một lập trình viên có một số thứ mà bạn có thể thay đổi hoặc trợ giúp với.</font></p>
  <h3><font face="Arial"><a name="activities" id="activities"></a>Các hoạt động học tập</font></h3>  
  <blockquote>
    <p><font face="Arial">Đây là những môđun quan trọng nhất và được đặt ở trong thư mục 'mod'. 
      Có một số môđun mặc định: assignment, choice, forum, journal, quiz, 
      resource, và survey. Mỗi môđun là một thư mục con riêng biệt chứa 
      các phần tử có tính bắt buộc sau (plus extra scripts unique to each module):</font></p>
    <ul>
      <li><font face="Arial">mod.html: một form để thiết lập hoặc cập nhật một ví dụ về môđun này </font></li>
      <li><font face="Arial">version.php: định nghĩa một số thông tin biến đổi và cung cấp nâng cấp mã</font></li>
      <li><font face="Arial">icon.gif: một biểu tượng 16x16 đối với môđun</font></li>
      <li><font face="Arial">db/: Kết xuất SQL về tất cả các bảng db được yêu cầu và dữ liệu (đối với mỗi kiểu cơ sở dữ liệu 
        )</font> </li>
      <li><font face="Arial">index.php: một trang liệt kê tất cả các ví dụ trong một cua học </font></li>
      <li><font face="Arial">view.php: một trang để quan sát một ví dụ cụ thể </font></li>
      <li><font face="Arial">lib.php: tất cả các hàm được định nghĩa bởi môđun nên được đặt ở đây. 
        Nếu tên môđun nếu gọi widget, thì các hàm được yêu cầu bao gồm:</font> 
        <ul>
          <li><font face="Arial">widget_add_instance() - mã để thêm một ví dụ mới về widget</font></li>
          <li><font face="Arial">widget_update_instance() - mã để cập nhật một trường hợp đã tồn tại</font></li>
          <li><font face="Arial">widget_delete_instance() - mẫ để xóa một trường hợp</font></li>
          <li><font face="Arial">widget_user_outline() - đưa ra một trường hợp, trả về tóm  tắt đóng góp của một người 
            </font></li>
          <li><font face="Arial">widget_user_complete() - đưa ra một trường hợp, hiển thị chi tiết về đóng góp của người dùng 
            <br />
            </font>
          </li>
          <li><font face="Arial">Ngăn chặn khả năng xung đột, bất kỳ hàm môđun nào nên được đặt tên bắt đầu với 
            widget_  và bất kỳ hằng bạn định nghĩa nên bắt đầu với WIDGET_</font> </li>
        </ul>
      </li>
      <li><font face="Arial">Cuối cùng, mỗi môđun sẽ có một số file ngôn ngữ mà nó chứa các chuỗi đặc trưng cho môđun đó 
        . Xem dưới đây.</font></li>
    </ul>
    <p><font face="Arial">Cách tốt nhất để bắt đầu một môđun hoạt động học tập mới là sử dụng cái mẫu trong <strong><a href="http://moodle.org/mod/newmodule_template.zip">mod/newmodule_template.zip</a>.</strong> 
     giải nén nó và làm theo các bước bên trong phần README. </font> </p>
    <p><font face="Arial">Bạn cũng có thể muốn gửi lên đầu tiên trong <a href="http://moodle.org/mod/forum/view.php?id=44" target="_top"> Diễn đàn các môđun hoạt động trên Moodle</a>.</font></p>
    <p>&nbsp;</p>
  </blockquote>
  <h3><font face="Arial"><a name="themes" id="themes"></a>Themes</font></h3>
  <blockquote>
    <p><font face="Arial">Themes (or skins) định nghĩa giao diện của site. Một số theme đơn giản  
      được cung cấp trong phân phối chính, nhưng bạn có thể muốn tạo ra cho riêng mình một 
      theme với màu sắc, logo, kiểu dáng và giản đồ của riêng mình.</font> </p>
    <p><font face="Arial">Mỗi theme trong một thư mục con của thư mục &quot;theme&quot;, và chứa tối thiểu 
      các file sau:</font></p>
    <ul>
      <li><font face="Arial"><strong>config.php</strong>: định nghĩa màu sắc của theme được sử dụng trong suốt site 
        </font></li>
      <li><font face="Arial"><strong>styles.php</strong>: chứa các định nghĩa CSS cho các phần tử 
        HTML chuẩn như đối với nhiều phần tử của Moodle.</font></li>
      <li><font face="Arial"><strong>header.html</strong>: Bao gồm ở đỉnh của mỗi trang. Đây là những gì bạn cần  
        để soạn thảo thêm một logo ở đỉnh của các trang, ví dụ.</font></li>
      <li><font face="Arial"><strong>footer.html</strong>: Bao gồm ở đáy của mỗi trang.</font></li>
    </ul>
    <p><font face="Arial">Tạo themes cho riêng bạn đối với các phiên bản hiện tại của Moodle:</font></p>
    <ol>
      <li><font face="Arial">Copy folder theme đã tồn tại sang một cái khác với một tên mới. Tôi gợi ý bắt đầu
        với một trong những cái theme chuẩn.</font> </li>
      <li><font face="Arial">Soạn thảo file config.php và chèn các màu sắc của riêng bạn vào.</font> </li>
      <li><font face="Arial">Soạn thảo file styles.php và thay đổi kiểu dáng CSS của bạn.</font> </li>
      <li><font face="Arial">Soạn thảo file header.html và footer.html thêm các logo mới, hoặc thay đổi cách bố trí.</font> 
      </li>
    </ol>
    <p><font face="Arial">Chú ý rằng tất cả các bươc này là tùy chọn - bạn có thể tạo một cái trông khác hoàn toàn 
      để site của  bạn trở nên đơn giản bởi việc soạn thảo màu sắc trong file config.php</font></p>
    <p><font face="Arial">Chú ý rằng các nâng cấp của Moodle cũng <em>có thể</em> làm gián đoạn các themes, vì thế 
      kiểm tra các ghi chú phiên bản một cách cẩn thận nếu bạn đang sử dụng một theme tùy chọn.</font></p>
    <p><font face="Arial">Cụ thể, Moodle 2.0 sẽ có một hệ thống hiển thị mới hoàn toàn, có thể dựa trên 
    XSL sự biến đổi của đầu ra XML từ Moodle. Hầu như các theme  cho điều này sẽ là một định dạng khác hoàn toàn 
      ,nhưng lợi ích sẽ là là cao hơn rất nhiều (bao gồm di chuyển các phần tử xung quanh trang ).</font></p>
    <p><font face="Arial">Thảo luận nhiều hơn về điều này trong <a target="_top" href="http://moodle.org/mod/forum/view.php?id=46"> Các diễn đàn về theme 
      trên Moodle</a>.Nếu bạn tạo một theme đẹp mà bạn nghĩ những người khác có thể muốn sử dụng 
      , vui lòng gửi file zip của bạn lên diễn đàn về theme!<br />
    </font>
    </p>
  </blockquote>
  <h3><font face="Arial"><a name="languages" id="languages"></a>Các ngôn ngữ</font></h3>
  <blockquote>
    <p><font face="Arial">Moodle được thiết kế cho toàn cầu. Mỗi 'string' hoặc 'page' 
      văn bản mà được hiển thị như một phần giao diện được vẽ từ một tập các file ngôn ngữ 
      . Mỗi ngôn ngữ là một thư mục con của thư mục 'lang'. 
      Cấu trúc của thư mục  lang là như sau:</font></p>
    <p><font face="Arial"><strong>lang/en</strong> - thư mục chứa tất cả các file đối với mỗi ngôn ngữ 
      (ví dụ English)</font></p>
    <ul>
      <li><font face="Arial">moodle.php - các chuỗi dành cho giao diện chính</font></li>
      <li><font face="Arial">assignment.php - các chuỗi dành cho môđun bài tập lớn</font></li>
      <li><font face="Arial">choice.php - các chuỗi dành cho môđun lựa chọn</font></li>
      <li><font face="Arial">forum.php - các chuỗi dành cho môđun diễn đàn</font></li>
      
      <li><font face="Arial">quiz.php - các chuỗi dành cho môđun bài thi</font></li>
      <li><font face="Arial">resource.php - các chuỗi dành cho môđun tài nguyên </font></li>
      <li><font face="Arial">survey.php - các chuỗi dành cho môđun khảo sát</font></li>
      <li><font face="Arial">.... và nhiều môđun khác nữa nếu có thể.<br />
        <br />
        Một chuỗi được gọi từ những file này sử dụng hàm <strong><em>get_string()</em></strong><em> 
        </em>hoặc<em> <strong>print_string()</strong> </em>. Mỗi chuỗi hỗ trợ hành động thay thế các biến,
        hỗ trợ thứ tự biến trong các ngôn ngữ khác nhau.<em><br />
        <br />
        </em>ví dụ $strdueby = get_string(&quot;assignmentdueby&quot;, &quot;assignment&quot;, 
        userdate($date)); <br />
        <br />
        Nếu một chuỗi không tồn tại tỏng ngôn ngữ riêng biệt, thì một chuỗi bằng tiếng anh tương ứng sẽ được tự động thay thế
        .</font></li>
    </ul>
    <p><font face="Arial"><strong>lang/en/help</strong> - chứa các trang trợ giúp( trợ giúp phù hợp với từng ngữ cảnh )</font></p>
    <blockquote>
      <p><font face="Arial">Các trang trợ giúp chính thường ở đây, đôi khi các trang trợ giúp chỉ ra mỗi môđun  
        được định vị trong các thư mục con với tên của môđun đó.</font></p>
      <p><font face="Arial">Bạn có thể chèn motọ nút trợ giúp vào trong một trang với hàm trợ giúp.</font></p>
      <p><font face="Arial">ví dụ helpbutton(&quot;text&quot;, &quot;Nhấn chuột vào đây để được trợ giúp về văn bản &quot;);</font></p>
      <p><font face="Arial">và chi tiết về các môđun </font></p>
      <p><font face="Arial">helpbutton(&quot;forumtypes&quot;, &quot;các kiểu diễn đàn&quot;, &quot;forum&quot;);</font></p>
    </blockquote>
    <p><font face="Arial">Chú ý rằng bạn có thể soạn thảo các ngôn ngữ trực tuyến, sử dụng công cụ quản trị web 
      bởi &quot;Kiểm tra ngôn ngữ này&quot;. Điều này làm cho nó không chỉ dễ tạo các ngôn ngữ mới mà còn tinh lọc 
      những cái đã tồn tại. Nếu bạn đang bắt đầu một ngôn ngữ mới, vui lòng liên lạc với tôi 
      , <a target="_top" href="http://dougiamas.com/">Martin 
      Dougiamas</a>.</font> </p>
    <p><font face="Arial">Bạn cũng có thể muốn gửi lên <a target="_top" href="http://moodle.org/mod/forum/view.php?id=43">Diễn đàn các ngôn ngữ
      sử dụng Moodle</a>.</font> </p>
    <p><font face="Arial">Nếu bạn đang duy trì một ngôn ngữ dựa trên một bản đã tồn tại, tôi có thể đưa cho bạn <a href="?file=cvs.html"> điền vào CVS 
      truy cập mã nguồn của Moodle</a> vì thế bạn có thể duy trì trực tiếp các file.</font></p>
  </blockquote>
  <h3><font face="Arial"><a name="database" id="database"></a>Giản đồ cơ sở dữ liệu </font></h3>  
  <blockquote>
    <p><font face="Arial">Đưa ra một cơ sở dữ liệu làm việc với các bảng được định nghĩa, 
    SQL sử dụng trong Moodle sẽ làm việc tốt với sự đa dạng của các kiểu cơ sở dữ liệu khác nhau.</font></p>
    <p><font face="Arial">Một vấn đề tồn tại vơí <strong>tạo tự động </strong> các bảng mới 
      trong một cơ sở dữ liệu, nó là những gì moodle cố gắng làm để chông lại các cài đặt ban đầu. 
      Bởi vì mọi cơ sở dữ liệu thì rất khác nhau, chưa tồn tại bất kỳ cách nào để làm điều này theo 
      một cách không phụ thuộc nền. Để hỗ trợ điều này tự động trong mỗi cơ sở dữ liệu
     , các giản đồ có thể được tạo mà danh sách yêu cầu SQL tạo các bảng trong Moodle trong một cơ sở dữ liệu đặc biệt
     . Có nhiều file trong <strong>lib/db</strong> 
      và bên trong thư mục con <strong>db</strong> của mỗi môđun.</font></p>
    <p><font face="Arial">Hiện tại, chỉ có MySQL và PostgreSQL là hỗ trợ hoàn toàn theo cách này.</font></p>
    <p><font face="Arial">Moodle 1.2 sẽ sử dụng một phương pháp mới của giản đồ XML không phụ thuộc cơ sở dữ liệu 
      mà sẽ làm tất cả những điều không cần thiết .</font></p>
  </blockquote>
  <p>&nbsp;</p>
  <h3><font face="Arial"><a name="courseformats" id="courseformats"></a>Các định dạng cua học</font></h3>  
  <blockquote>
    <p><font face="Arial">Moodle hiện tại hỗ trợ 3 định dạng cua học khác nhau: theo tuần, theo chủ đề 
      và các vấn đề xã hội.</font> </p>
    <p><font face="Arial">Những cái này là một bộ phận nhỏ được kết nối tới phần còn lại của mã ( và kể từ đây, 
      &quot;pluggable&quot kém đi;)nhưng nó quá dễ để thêm vào nhiều cái mới.</font></p>
    <p><font face="Arial">Nếu bạn có bất kỳ ý kiến nào về các định dạng khác mà bạn muốn thì bạn có thể liên lạc với tôi để tôi
    sẽ làm nó một cách tuyệt đối nhất để có sẵn ở các phiên bản trong tương lai.</font></p>
  </blockquote>
  <p>&nbsp;</p>
  <h3><font face="Arial"><a name="doc" id="doc"></a>Tài liệu và các bài báo</font></h3>  
  <blockquote>
    <p><font face="Arial">Nếu bạn cảm thấy muốn viết một tài liệu hướng dẫn, một bài báo, hoặc bất kỳ cái gì khác 
      về Moodle, vui lòng làm thực hiện như sau!</font> </p>
    <p><font face="Arial">Đặt nó trên web và đảm bảo rằng bạn chứa các đường link tới <a target="_top" href="http://moodle.org/">http://moodle.org/</a></font></p>
  </blockquote>
  <p>&nbsp;</p>
  <h3><font face="Arial"><a name="bugs" id="bugs"></a>Tham gia vào hoạt động kiểm tra lỗi</font></h3>  
  <blockquote>
    <p><font face="Arial">Cuối cùng, tôi  muốn mời bạn đăng ký vào &quot; hoạt động kiểm tra lỗi &quot; 
      ở <a target="_top" href="http://moodle.org/bugs/">http://moodle.org/bugs</a> 
      vì thế bạn có thể sửa bất kỳ lỗi nào mà bạn tìm thấy và có thể tham gia thảo luận và cố định chúng
      .</font> </p>
    <p><font face="Arial">&quot;Các lỗi&quot; không chỉ bao gồm các lỗi phần mềm với các phiên bản hiện hành. 
    của Moodle, mà còn các ý kiến mới, các yêu cầu đặc trưng và nhận xét kiến trúc các đặc trưng đã tồn tại 
    Điều tuyệt vời  nhất của mã nguồn mở là bất kỳ ai cũng có thể tham gia theo nhiều kiểu khác nhau và trợ giúp tạo một
    sản phẩm tốt hơn cho tất cả chúng ta thưởng thức. 
      Trong dự án này, rất ủng hộ mọi người tham gia vào!</font></p>
  </blockquote>
</blockquote>
<p>&nbsp;</p>
<blockquote> 
  <blockquote> 
    <blockquote> 
      <p align="center"><font face="Arial">Xin chân thành cám ơn vì đã sử dụng Moodle!<br />
        <br />
        <a target="_top" href="http://dougiamas.com/">Martin Dougiamas</a>, nhà phát triển chính
        </font> </p>
    </blockquote>
  </blockquote>
</blockquote>
<p>&nbsp;</p>
<blockquote> 
  <p>&nbsp;</p>
</blockquote>
<p align="CENTER"><font size="1" face="Arial"><a href="." target="_top">Tài liệu của Moodle</a></font></p>
<p align="CENTER"><font size="1" face="Arial">Phiên bản: $Id$</font></p>
</body>
